'''
莫尔斯码 加密 解密
2021-8-15 Nasa
'''
import time
# import pygame

import test23split_str


class Morse:
    def __init__(self):
        self._w_to_m = {'a': '.-', 'b': '-...', 'c': '-.-.', 'd': '-..', 'e': '.', 'f': '..-.', 'g': '--.', 'h': '....',
                        'i': '..', 'j': '.---', 'k': '-.-', 'l': '.-..', 'm': '--', 'n': '-.', 'o': '---', 'p': '.--.',
                        'q': '--.-',
                        'r': '.-.', 's': '...', 't': '-', 'u': '..-', 'v': '...-', 'w': '.--', 'x': '-..-', 'y': '-.--',
                        'z': '--..', '1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....', '6': '-....',
                        '7': '--...', '8': '---..', '9': '----.', '0': '-----', '(': '-.--.', ')': '-.--.-',
                        '?': '..--..'}
        self._m_to_w = {'.-': 'A', '-...': 'B', '-.-.': 'C', '-..': 'D', '.': 'E', '..-.': 'F', '--.': 'G', '....': 'H',
                        '..': 'I', '.---': 'J', '-.-': 'K', '.-..': 'L', '--': 'M', '-.': 'N', '---': 'O', '.--.': 'P',
                        '--.-': 'Q', '.-.': 'R', '...': 'S', '-': 'T', '..-': 'U', '...-': 'V', '.--': 'W', '-..-': 'X',
                        '-.--': 'Y', '--..': 'Z', '.----': '1', '..---': '2', '...--': '3', '....-': '4', '.....': '5',
                        '-....': '6', '--...': '7', '---..': '8', '----.': '9', '-----': '0', '..--..': '?',
                        '-..-.': '/', '-.--.': '(', '-.--.-': ')', '-....-': '-', '.-.-.-': '.'
                        }

    def playmp3(self):
        pass
        # pygame.init()
        #
        # pygame.mixer.init()
        #
        # pygame.mixer.music.load("di.ogg")
        # pygame.mixer.music.play()

    def word_to_morse(self, word):
        r = ''
        for i in word:
            if i in self._w_to_m:
                morse = self._w_to_m[i]
                r = r + morse + ' '
            elif 13311 < ord(i) < 40870:  # 如果是中文
                zhweord = str(ord(i))
                r += '..--.. '
                for j in zhweord:
                    morse = self._w_to_m[j]
                    r += morse + ' '
                r += '..--..  '
            elif i == ' ':
                r += ' '
        return r

    def morse_to_word(self, morse):
        l = test23split_str.fg(morse, ' ')
        r = ''
        for i in l:
            # if i != ' ':
            if i in self._m_to_w:
                word = self._m_to_w[i]
                r += word
            elif i == '':
                r += ' '
        return test23split_str.zhwe(r)


if __name__ == '__main__':
    morse = Morse()
    morse.playmp3()
    word = '水兄'
    word = 'hello'
    morsestr = '-. .- -- .  -.--....-- --... ----- --... ...-- -.--.- -.--...--- -.... ..... .---- ----. -.--.- '
    wordtomorse = morse.word_to_morse(word)
    print(wordtomorse)
    print(morse.morse_to_word(wordtomorse))
